package com.sg.dto.biz.bff.res;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @desc BffQueryProjectDetailRespDto
 * @使用场景
 */
@Data
public class BffQueryProjectDetailRespDto implements Serializable {

    /**
     * 项目ID
     */
    @ApiModelProperty("项目ID")
    private String projectId;

    /**
     * 项目编号
     */
    @ApiModelProperty("项目编号")
    private String projectNumber;

    /**
     * 项目标识
     */
    @ApiModelProperty("项目标识")
    private String projectCode;

    /**
     * 项目名称
     */
    @ApiModelProperty("项目名称")
    private String projectName;

    /**
     * 项目logo
     */
    @ApiModelProperty("项目logo")
    private String projectLogo;

    /**
     * 项目文字描述
     */
    @ApiModelProperty("项目文字描述")
    private String projectDesc;

    /**
     * 项目图片描述
     */
    @ApiModelProperty("项目图片描述")
    private String projectImg;

    /**
     * 安排主体ID
     */
    @ApiModelProperty("安排主体ID")
    private String arrangeSubjectId;

    /**
     * 安排主体名称
     */
    @ApiModelProperty("安排主体名称")
    private String arrangeSubjectName;

    /**
     * 接收部门ID
     */
    @ApiModelProperty("接收部门ID")
    private String receiveSubjectId;

    /**
     * 接收部门名称
     */
    @ApiModelProperty("接收部门名称")
    private String receiveSubjectName;

    /**
     * 归属对象ID
     */
    @ApiModelProperty("归属对象ID")
    private String coordObjectId;

    /**
     * 归属对象名称
     */
    @ApiModelProperty("归属对象名称")
    private String coordObjectName;

    /**
     * 公文ID
     */
    @ApiModelProperty("公文ID")
    private String officialDocumentId;

    /**
     * 公文名称
     */
    @ApiModelProperty("公文名称")
    private String officialDocumentName;

    /**
     * 计划开始时间
     */
    @ApiModelProperty("计划开始时间")
    private Date planStartTime;

    /**
     * 计划结束时间
     */
    @ApiModelProperty("计划结束时间")
    private Date planEndTime;

    /**
     * 实际开始时间
     */
    @ApiModelProperty("实际开始时间")
    private Date actualStartTime;

    /**
     * 实际结束时间
     */
    @ApiModelProperty("实际结束时间")
    private Date actualEndTime;

    /**
     * 总时长
     */
    @ApiModelProperty("总时长")
    private Long totalLength;

    /**
     * 开始时间偏差天数
     */
    @ApiModelProperty("开始时间偏差天数")
    private Long deflectionStartDays;

    /**
     * 结束时间偏差天数
     */
    @ApiModelProperty("结束时间偏差天数")
    private Long deflectionEndDays;

    /**
     * 前端偏差时间
     */
    @ApiModelProperty("前端偏差时间")
    private Long deflectionTime;

    /**
     * 前端偏差语义提示
     */
    @ApiModelProperty("前端偏差语义提示")
    private String deflectionInfo;

    /**
     * 冗余最新进度
     */
    @ApiModelProperty("冗余最新进度")
    private Double percentageProgress;

    /**
     * 项目规模 LARGE:大型项目 MEDIUM:中型项目 SMALL:小型项目
     */
    @ApiModelProperty("项目规模")
    private String projectScale;

    /**
     * 项目优先级 P0:P0 P1:P1 P2:P2 P3:P3 P4:P4
     */
    @ApiModelProperty("项目优先级")
    private String projectPriority;

    /**
     * 项目类型 PRE_SALES_PROJECT:售前项目 PRODUCE_PROJECT:生产项目 AFTER_SALES_PROJECT:售后项目
     */
    @ApiModelProperty("项目类型")
    private String projectTypeCode;

    /**
     * 来源类型编码
     */
    @ApiModelProperty("来源类型编码")
    private String sourceTypeCode;

    /**
     * 来源名称
     */
    @ApiModelProperty("来源名称")
    private String sourceName;

    /**
     * 成员身份是否锁定修改 TRUE:是 FALSE:否
     */
    @ApiModelProperty("成员身份是否锁定修改")
    private String membershipIsLockedRevise;

    /**
     * 相关人数量
     */
    @ApiModelProperty("相关人数量")
    private Long relevantPeopleNum;

    /**
     * 项目进展状态 NOT_AT_THE:未开始 ONGOING:进行中 HAS_ENDED:已结束
     */
    @ApiModelProperty("项目进展状态")
    private String taskStatus;

    /**
     * 内容状态
     */
    @ApiModelProperty("内容状态")
    private String stateCode;

    /**
     * 是否已处理 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否已处理")
    private String isHandle;

    /**
     * 是否系统项目 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否系统项目")
    private String isSystemTask;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 操作人就职记录ID
     */
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 账号
     */
    @ApiModelProperty("账号")
    private String userId;

    /**
     * 真实头像
     */
    @ApiModelProperty("真实头像")
    private String userFace;

    /**
     * 真实姓名
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;

    /**
     * 用户昵称
     */
    @ApiModelProperty("用户昵称")
    private String nickName;

    /**
     * 操作时间
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;

}
